Optimized lookup by adding an inline version of babl_db_each specially for
authorØyvind Kolås <ok@src.gnome.org>
Sat, 10 Nov 2007 23:19:30 +0000 (23:19 +0000)
committerØyvind Kolås <ok@src.gnome.org>
Sat, 10 Nov 2007 23:19:30 +0000 (23:19 +0000)
* babl/babl-db.c: (babl_db_each_inline), (babl_db_exist): Optimized
lookup by adding an inline version of babl_db_each specially for
babl_db_exist.

svn path=/trunk/; revision=246

ChangeLog
babl/babl-db.c

index 7f55eb0903577000d8b8e7731083fcbde67da06d..8a9cee630b31aab6c1f454908f5742125d8bba25 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-11-10  Øyvind Kolås  <pippin@gimp.org>
+
+       * babl/babl-db.c: (babl_db_each_inline), (babl_db_exist): Optimized
+       lookup by adding an inline version of babl_db_each specially for
+       babl_db_exist.
+
 2007-11-10  Øyvind Kolås  <pippin@gimp.org>
 
        Do not accept BABL_FISH_REFERENCE as a valid result when fishing for
index 458677785f795a709dd83805ebda1604da11c714..845f2fb4bb578abb3d04ed16c674767eb6c7b93a 100644 (file)
@@ -149,6 +149,23 @@ babl_db_each (BablDb          *db,
     }
 }
 
+static inline void
+babl_db_each_inline (BablDb          *db,
+                     BablEachFunction each_fun,
+                     void            *user_data)
+{
+  int i;
+
+  for (i = 0; i < db->count; i++)
+    {
+      if (db->items[i])
+        {
+          if (each_fun ((Babl *) db->items[i], user_data))
+            break;
+        }
+    }
+}
+
 typedef struct BablDbExistData
 {
   int         id;
@@ -196,7 +213,7 @@ babl_db_exist (BablDb     *db,
     data.name = name;
     data.ret  = NULL;
 
-    babl_db_each (db, babl_db_each_exist, &data);
+    babl_db_each_inline (db, babl_db_each_exist, &data);
 
     return data.ret;
   }